long exchange(long *xp, long y)
{
    long x = *xp;
    *xp = y;
    return x;
}

// Compile example
// Compile to ASM: gcc -Og -S -o exchange3.7.s exchange3.7.c
// Compile to object: gcc -Og -c -o exchange3.7.o exchange3.7.c
// Compile to executable: gcc -Og -o exchange3.7 exchange3.7.o
// Compile with optimization: gcc -O2 -o exchange3.7 exchange3.7.o
// Compile with debugging information: gcc -g -o exchange3.7 exchange3.7.o
// Compile with optimization and debugging information: gcc -O2 -g -o exchange3.7 exchange3.7.o